package com.cougil.uoc.seghismed.business;

import java.util.Set;

import com.cougil.uoc.seghismed.model.Historial;
import com.cougil.uoc.seghismed.model.Pacient;
import com.cougil.uoc.seghismed.model.Visita;

/**
 * Interfície que determina el conjunt de principals métodes de negoci l'aplicatiu Pacient
 *
 * @author Ignacio Cougil Jares
 *
 */
public interface PacientClientService extends CoreClientService {

	/**
	 * Retorna l'historial del pacient connectat a l'aplicació
	 * 
	 * @return historial {@link Historial} amb totes les seves dades informades pel servidor
	 */
	public Historial consultarHistorial();

	/**
	 * Retorna el pacient amb totes les seves dades informades
	 * 
	 * @return pacient {@link Pacient} amb totes les seves dades informades pel servidor
	 */
	public Pacient consultarPacient();

	/**
	 * Retorna la visita amb totes les seves dades informades
	 * 
	 * @param visita
	 *            {@link Visita} a consultar
	 * @return visita {@link Visita} amb totes les seves dades informades pel servidor
	 */
	public Visita consultarVisita(Visita visita);

	/**
	 * Desxifra i retorna el conjunt de visites protegides de l'historial xifrat pel pacient
	 * informat per poder visualitzar les seves dades correctament
	 *
	 * @param historial
	 *            {@link Historial} a desxifrar
	 * @param pacient
	 *            {@link Pacient} pel qual es vol desxifrar l'historial
	 * @return Set {@link Set} amb el conjunt de visites desxifrades
	 */
	public Set<Visita> desxifrarVisitesProtegides(Historial historial, Pacient pacient);

}






